/***************************************************************************

-------------------
    begin                : 
    copyright            : kuzkok
    email                : kuzkok at gmail.com

***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*   
*   Данная программа является свободным программным обеспечением;         *
*   Вы можете распространять ее и/или модифицировать в соответствии с     *
*   GNU General Public License опубликованной Фондом свободного           *
*   программного обеспечения; используемая версия лицензии - 2 или        *
*   (по вашему выбору) любая более поздняя                                *
***************************************************************************/

#include <QtSql>
#include <QTableView>
#include <QMessageBox>

#include "tunetablemodel.h"
#include "dbconnection.h"

void tunetablemodel::tune(QSqlTableModel *model, QTableView *tableView)
{
    //QMessageBox::information(0, "info", tableName);
    QMap<QString, QString> fieldAliases;
    QSqlQuery fields(dbconnection::instance()->database());
    fields.prepare("SELECT classattributealias.* "
                   "FROM "
                   "  classattributealias, "
                   "  apdmclass "
                   "WHERE classattributealias.classeventid = apdmclass.classeventid "
                   "and apdmclass.classname=:tname");
    fields.bindValue(":tname", model->tableName());
    //QMessageBox::information(0, "tableName", tableName);
    if (fields.exec())
    {
        QSqlRecord rec = fields.record();
        while(fields.next())
        {
            QString attrName = fields.value(rec.indexOf("attributename")).toString();
            QString attrAlias = fields.value(rec.indexOf("attributealias")).toString();
            //QMessageBox::information(0, "info", QString("Name: %1\nAlias: %2").arg(attrName).arg(attrAlias));
            fieldAliases.insert(attrName, attrAlias);
        }
    }
    else
    {
        QMessageBox::information(0, "info", fields.lastError().text());
    }
    for(int i=0; i<model->columnCount(); i++)
    {
        tableView->showColumn(i);
        QString fldName = model->record().fieldName(i);
        if(fieldAliases.contains(fldName))
        {
            model->setHeaderData(i, Qt::Horizontal, fieldAliases[fldName]);
        }
        else
        {
            tableView->hideColumn(i);
        }
    }
}
